export default {
  namespaced: true,
  state: {
    // 侧边导航的是否关闭 默认是展开的
    menuCollapse: false,
    menuNames: sessionStorage.getItem('menuNames') ? JSON.parse(sessionStorage.getItem('menuNames')) : [],
    // 已经访问的所有的导航
    navTabs: sessionStorage.getItem('navTabs') ? JSON.parse(sessionStorage.getItem('navTabs')) : []
  },
  mutations: {
    TOGGLE_MENU (state) {
      // 将导航展开
      state.menuCollapse = !state.menuCollapse
    },
    // 设置 头部面包屑导航
    SET_MENU_INFO (state, menuNames) {
      state.menuNames = menuNames
      sessionStorage.setItem('menuNames', JSON.stringify(state.menuNames))
    },
    // 清除头部的 面包屑导航
    CLEAR_MENU (state) {
      state.menuNames = []
      sessionStorage.setItem('menuNames', JSON.stringify(state.menuNames))
    },
    // 新增一个navTab
    ADD_TABS (state, tab) {
      // 点击新增头部navTabs {label:'增加商品', path: '/xxx'}
      // 增加时，如果navTabs已经头 当前的路由 tab 就不再添加
      // indexOf lastIndexOf includes find findIndex
      const index = state.navTabs.findIndex(navTab => tab.path === navTab.path)
      if (index !== -1) {
        // navTabs已经存在该导航 不添加
        return false
      }
      state.navTabs.push(tab)
      // 在缓存中 利用sessionStorage 备份一下
      sessionStorage.setItem('navTabs', JSON.stringify(state.navTabs))
    },
    // 删除navTab
    DELETE_NAVTAB (state, index) {
      state.navTabs.splice(index, 1)
      sessionStorage.setItem('navTabs', JSON.stringify(state.navTabs))
    }
  }
}
